package com.yunao.commons.metasearch.bean;

public class PageUtil {

	/**
	 * 分页查询
	 * 
	 * @param totalItems
	 *            总数
	 * @param page
	 *            当前页
	 * @param pageSize
	 *            每页显示长度
	 */
	public static PageBean query(int totalItems, int page, int pageSize) {
		return query(totalItems, page, pageSize, 10);
	}

	/**
	 * 分页查询
	 * 
	 * @param totalItems
	 *            总数
	 * @param page
	 *            当前页
	 * @param pageSize
	 *            每页显示长度
	 * @param viewPageCount
	 *            浏览页数
	 */
	public static PageBean query(int totalItems, int page, int pageSize,
			int viewPageCount) {
		int totalPage = PageBean.countTotalPage(pageSize, totalItems);//总页数
		final int currentPage = PageBean.countCurrentPage(page);//当前页
		PageBean pageBean = new PageBean();
		pageBean.setCurrentPage(currentPage);
		pageBean.setTotalItems(totalItems);
		pageBean.setTotalPage(totalPage);//PageBean
		pageBean.setPageSize(pageSize);
		int startPageIndex = 1;//第一页
		int endPageIndex = totalPage;//最后一页
		if (totalPage > viewPageCount) {//浏览页数默认为10,如果总页数>浏览页数
			if (viewPageCount % 2 == 0) {//浏览页数为偶数
				startPageIndex = currentPage - viewPageCount / 2 + 1;
				endPageIndex = currentPage + viewPageCount / 2;
			} else {//为奇数
				startPageIndex = currentPage - viewPageCount / 2;
				endPageIndex = currentPage + viewPageCount / 2;
			}//设置当前页+5和-5
			if (startPageIndex < 1) {
				startPageIndex = 1;
				endPageIndex = viewPageCount;
			}//默认总显示10个页数
			if (endPageIndex > totalPage) {
				endPageIndex = totalPage;
				startPageIndex = totalPage - viewPageCount + 1;
				if (startPageIndex < 1) {
					startPageIndex = 1;
				}
			}
		}
		pageBean.setStartPageIndex(startPageIndex);
		pageBean.setEndPageIndex(endPageIndex);
		return pageBean;//返回分页对象
	}

}
